//package com.lw.common.timer;
//import com.lw.common.config.IWater;
//import jakarta.annotation.Resource;
//import net.javacrumbs.shedlock.spring.annotation.SchedulerLock;
//import org.slf4j.Logger;
//import org.slf4j.LoggerFactory;
//import org.springframework.scheduling.annotation.Scheduled;
//import org.springframework.stereotype.Component;
//import org.springframework.web.client.RestTemplate;
//
///**
// * 定时器
// * by lw on 二〇二四年八月四日 12:28:41
// */
//@Component
//public class SimpleTimer {
//    @Resource
//    IWater iWater;
//
//    private final Logger log = LoggerFactory.getLogger(SimpleTimer.class);
//    /**
//     * 积涝接口定时调用
//     * by lw on 二〇二四年八月十三日 10:20:35
//     * name属性：锁名称，必须指定，每次只能执行一个具有相同名字的任务，锁名称应该是全局唯一的;
//     * lockAtMostFor属性：设置锁的最大持有时间,为了解决如果持有锁的节点挂了,无法释放锁,其他节点无法进行下一次任务;
//     * lockAtMostForString属性：成功执行任务的节点所能拥有的独占锁的最长时间的字符串表达，例如“PT14M”表示为14分钟
//     * lockAtLeastFor属性：指定保留锁的最短时间。主要目的是在任务非常短的且节点之间存在时钟差异的情况下防止多个节点执行。这个属性是锁的持有时间。设置了多少就一定会持有多长时间，再此期间，下一次任务执行时，其他节点包括它本身是不会执行任务的
//     * lockAtLeastForString属性：成功执行任务的节点所能拥有的独占锁的最短时间的字符串表达，例如“PT14M”表示为14分钟
//     */
//    @Scheduled(cron = "0 0/10 * * * ?")
//    @SchedulerLock(name = "scheduledTaskName", lockAtLeastFor = "PT30S" ,lockAtMostFor="PT30S")
//    //默认的最大锁定时间，可以根据需要赋值，其中S为秒，M为分钟，H为小时，D为天，PT为ISO-8601期限格式
//    public void waterLogging() {
//        String url = String.format("%s%s", iWater.getUrl(), iWater.getWaterLogging());
//
//        log.warn("========================执行结束=========================\n\t");
//    }
//}
